//封装sql语句的执行
// export function dosql(sqlStr: string, params: Array<any>, connection: any) {
//   //返回promise对象执行的结果，可以解决回调地狱
//   return new Promise(function (resolve, reject) {
//     //为了解决sql注入攻击问题，query方法支持把字符串作为参数
//     connection.query(
//       sqlStr,
//       params,
//       function (err: Error, results: any, fields: any) {
//         if (err) {
//           reject(err); //如果错误调用reject
//         } else {
//           resolve(results); //如果执行成功返回resolve
//         }
//       }
//     );
//   })
//     .then((result: any) => ({ success: true, data: result }))
//     .catch((err: Error) => ({ success: false, data: err }));
// }

// 利用数据库连接池进行二次封装
import mysqlPool from "../mysql/sqlPool";
export function dosql(sqlStr: string, params: Array<any>) {
  //返回promise对象执行的结果，可以解决回调地狱
  return new Promise(function (resolve, reject) {
    mysqlPool.getConnection(function (err: Error, conn: any) {
      conn.query(
        sqlStr,
        params,
        function (err: Error, results: any, fields: any) {
          if (err) {
            reject(err); //如果错误调用reject
          } else {
            resolve(results); //如果执行成功返回resolve
          }
          conn.release();
        }
      );
    });
    //为了解决sql注入攻击问题，query方法支持把字符串作为参数
  })
    .then((result: any) => ({ success: true, data: result }))
    .catch((err: Error) => ({ success: false, data: err }));
}
